/*
 * 本js文件用于处理calputer.html页面的计算器交互逻辑
 * editor: kamihati 
 * date: 2019-03-20
 */

// 用于记录当前按下的运算按钮。按=号之后重置为空字符串
var nowKey = "";
// 用于记录点击等号需要使用的运算符。若无则不运算
var oldKey = "";
// 用于临时存储文本框内容转换成的数字。按等号之后重置为0
var leftNumber = 0;

// 设置文本框内容的函数。减少代码量
// content: 类型为字符串。要设置的文本内容 
function SetInputText(content){
	document.getElementById("txtNum").value = content;
}

// 向文本框追加字符串。减少代码量
// content: 类型为字符串或数字。需要追加到文本框的内容
function AddInputText(content){
	document.getElementById("txtNum").value += content;
}

// 获取文本框内的字符串并转为浮点数
function GetInputNumber(){
	return parseFloat(document.getElementById("txtNum").value);
}

// 处理按下按钮需要执行的逻辑
// num：0-9，小数点。c清除。+-*/  为运算符 ；  =号求值
function PressButton(num){
	console.log(num);
	if(num == 'c'){
		// 清除显示屏内容。重置为0
		SetInputText("0");
	}else if(num == "." || !isNaN(num)){
		// 处理输入的小数点。或数字。
		
		// 点击运算符前直接追加.点击运算符后的输入直接替换。替换后转换为追加模式
		if(nowKey == ""){
			// 获取现在文本框内的数字
			var nowNumber = GetInputNumber();
			// 当文本框为0.则按下的小数点或数字替换掉0
			if(nowNumber == 0){
				SetInputText(num)
			}else{
				AddInputText(num)
			}
		}else{
			// 点击运算符后点击按钮.先获取文本框的值转为浮点数再重置文本框
			leftNumber = GetInputNumber();
		    SetInputText(num);
		    oldKey = nowKey;
		    nowKey = "";
		}
		
	}else {
		// 点击的按钮不是=号则记录到当前按下的按钮变量
		if(num != "="){
		    	nowKey = num;
		}else{
			 
			// 获取现在文本框内的数字
			var nowNumber = GetInputNumber();
			// 计算后设置文本框为计算结果
			var result = 0;
			console.log(leftNumber);
			console.log(oldKey);
			console.log(nowNumber);
			console.log(num);
			if( oldKey == "+"){
				result = leftNumber + nowNumber;
			}else if(oldKey == "-"){
				result = leftNumber - nowNumber;
			}else if(oldKey == "*"){
				result = leftNumber * nowNumber;
			}else if(oldKey == "/"){
				result = leftNumber / nowNumber;;
			}else{
				return;
			}
			if(result != parseInt(result)){
				result = result.toFixed(8);
			}
			SetInputText(result);
			// 把已按下的按钮清空
			oldKey = "";
			// 设置当前按下的按钮
			nowKey = "="
		 
		}
	}
	
}

